{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 4: Figures"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Robert Johansson\n",
    "\n",
    "Source code listings for [Numerical Python - Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib](https://www.apress.com/us/book/9781484242452) (ISBN 978-1-484242-45-2)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "\n",
    "ax = fig.add_axes([0.05, 0.05, .88, .88])\n",
    "ax.set_yticks([])\n",
    "ax.set_xticks([])\n",
    "ax.text(0.001, 0.01, \"(0,0)\")\n",
    "ax.text(1.001, 0.01, \"(1,0)\")\n",
    "ax.text(0.001, 1.01, \"(0,1)\")\n",
    "ax.text(1.001, 1.01, \"(1,1)\")\n",
    "ax.text(0.02, 0.92, \"Figure\", fontsize=18)\n",
    "\n",
    "ax.text(0.12, 0.06, \"(0.15, 0.15)\")\n",
    "\n",
    "ax = fig.add_axes([0.15, 0.15, 0.68, 0.66])\n",
    "ax.text(0.03, 0.88, \"Axes\", fontsize=18)\n",
    "ax.set_yticks([])\n",
    "ax.set_xticks([])\n",
    "\n",
    "\n",
    "fig.savefig(\"figure-axes-schematic.pdf\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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zCzix+RUVFu2bOG2226jbdu2LFu2LN7liEiCijpszexEM/sjsInQY8g7Ao8Cv3L3c929F6HR7hfA/8aiSDPrbWaZO3fujEV3Edm6dSsjRowovAZ11apV3HDDDYGdX0Qql2iernu1mS0DVgF3EFoo/FKgqbvf4+77H5mDu/8/QquBxeSDM3ef6+7DU1NTY9HdIe3bt48JEybQunVr/vvf//LJJ5/wxBNPxHydARGpWqK5qeFZYAuhhzpOdvf1ZbT/lNAcbsJYvHgxt9xyC40aNWLp0qWcdNJJ8S5JRCqJaMK2H/APd8+PpLG7rwRWlquqgH311VfceeedvPPOO4wfP56+ffvqDicRialorrOdE2nQJoq8vDwefvhh2rVrx4knnsinn35Kv379FLQiEnNVdm2EBQsWcOONN9K6dWveffddjjvuuHiXJCKVWJUL27y8PEaNGsWsWbPIzMykZ8+e8S5JRKqAKhW2n3/+OQMHDuTYY48lNze32GLbIiKHS5VYSMbdyczM5Mwzz+SGG25g9uzZCloRCVSlH9lu27aNa6+9lnXr1ulyLhGJm0o9sl20aBHt2rXj2GOPZcWKFQpaEYmbSjmydXfGjx/PY489xtSpU+nRo0e8SxKRKq7She2+ffu4+eabefvtt3nnnXc45phj4l2SiEjihu0333xDrVq1SElJKdy3a9cu+vfvD0BOTg516tSJV3kiIgdI2DnbYcOG8cYbbxRuf/3113Tt2pXmzZszd+5cBa2IVCgJGba7du1iyZIlnH322QB88MEHnH766QwePJinn36aI45I2AG7iFRSCZlK8+fPp2vXrtSpU4d58+YxdOhQnn76aS655JJ4lyYiUqKEDNuXX36Zvn37MmXKFH73u98xd+5cOnfuHO+yRERKlXDTCHv27OGf//wn27dvJyMjgyVLllCvXj0yMjIYMGBAvMsTESlRwoXtwoULadiwIU888QSXX345l112Gd27d2fHjh2MHDky3uWJiJQo4aYRfv/73/Pll1+SmprKtm3bePTRR0lLSyMpKSnepYmIlCrhwvass87i6quvZvDgwVSvXj3e5YiIRCThwnbs2LHxLkFEJGoJMWcbj0eZi4jEUkKEbZCPMhcRORwSImxFRBKdwlZEJAAKWxGRAChsRUQCoLAVEQmAwlZEJAAKWxGRAChsRUQCoLAVEQmAwlZE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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "\n",
    "\n",
    "ax.text(0.12, 0.06, \"(0.15, 0.15)\")\n",
    "\n",
    "ax = fig.add_axes([0.15, 0.15, 0.68, 0.66])\n",
    "ax.set_yticks([1, 2, 3])\n",
    "ax.set_xticks([1, 2, 3])\n",
    "\n",
    "#ax.set_yticklabels(['', '', ''])\n",
    "\n",
    "ax.set_xlabel(\"x axis\", fontsize=18)\n",
    "ax.set_ylabel(\"y axis\", fontsize=18)\n",
    "\n",
    "ax.set_xlim(1,3)\n",
    "ax.set_ylim(1,3)\n",
    "\n",
    "ax.xaxis.set_minor_locator(mpl.ticker.MultipleLocator(0.25))\n",
    "ax.yaxis.set_minor_locator(mpl.ticker.MultipleLocator(0.25))\n",
    "\n",
    "ax.annotate(\"Major tick\",\n",
    "         xy=(1, 2), xycoords='data',\n",
    "         xytext=(+35, +30), textcoords='offset points', fontsize=16,\n",
    "         arrowprops=dict(arrowstyle=\"->\", connectionstyle=\"arc3, rad=.2\"))\n",
    "\n",
    "ax.annotate(\"Minor tick\",\n",
    "         xy=(1, 1.5), xycoords='data',\n",
    "         xytext=(+35, +30), textcoords='offset points', fontsize=16,\n",
    "         arrowprops=dict(arrowstyle=\"->\", connectionstyle=\"arc3, rad=.2\"))\n",
    "\n",
    "fig.savefig(\"figure-axis-schematic.pdf\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Versions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%reload_ext version_information"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table><tr><th>Software</th><th>Version</th></tr><tr><td>Python</td><td>3.6.8 64bit [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]</td></tr><tr><td>IPython</td><td>7.5.0</td></tr><tr><td>OS</td><td>Darwin 18.2.0 x86_64 i386 64bit</td></tr><tr><td>numpy</td><td>1.16.3</td></tr><tr><td>matplotlib</td><td>3.0.3</td></tr><tr><td colspan='2'>Mon May 06 14:32:33 2019 JST</td></tr></table>"
      ],
      "text/latex": [
       "\\begin{tabular}{|l|l|}\\hline\n",
       "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n",
       "Python & 3.6.8 64bit [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE\\_401/final)] \\\\ \\hline\n",
       "IPython & 7.5.0 \\\\ \\hline\n",
       "OS & Darwin 18.2.0 x86\\_64 i386 64bit \\\\ \\hline\n",
       "numpy & 1.16.3 \\\\ \\hline\n",
       "matplotlib & 3.0.3 \\\\ \\hline\n",
       "\\hline \\multicolumn{2}{|l|}{Mon May 06 14:32:33 2019 JST} \\\\ \\hline\n",
       "\\end{tabular}\n"
      ],
      "text/plain": [
       "Software versions\n",
       "Python 3.6.8 64bit [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]\n",
       "IPython 7.5.0\n",
       "OS Darwin 18.2.0 x86_64 i386 64bit\n",
       "numpy 1.16.3\n",
       "matplotlib 3.0.3\n",
       "Mon May 06 14:32:33 2019 JST"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%version_information numpy, matplotlib"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py3.6",
   "language": "python",
   "name": "py3.6"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
